package com.efuture.chapterfour

/* @Description:Kotlin语言读取Map的值
 * @Auther: zhaoshanshan
 * @Date: 2022/03/06/7:26 下午
 */
fun main() {
    val map = mapOf("zhaoshanshan" to 123,"liuyifan" to 345.6,"zhaoshanshan" to "test")
    //第一种方式 通过键值对获取 找不到返回null
    println(map["zhaoshanshan"])//如果键相同 后面值覆盖前面的值
    println(map["liuyifan"])
    println(map["xxx"])//没有此键 返回null
    //第二种方式 getOrDefault
    println();
    println(map.getOrDefault("zhaoshanshan",-1));
    println(map.getOrDefault("liuyifan",-1));
    println(map.getOrDefault("xxx",-1));//没有该键 返回-1

    //第三种方式 getOrElse
    println();
    println(map.getOrElse("zhaoshanshan"){-1})
    println(map.getOrElse("liuyifan"){-1})
    println(map.getOrElse("xxx"){-1})//没有该键 返回-1


    //第四种方式 getValue 跟java一样 会崩溃 不推荐使用
    println();
    println(map.getValue("zhaoshanshan"))
    //println(map.getValue("xxx"))//没有此键 会抛出异常


}